package com.witsight.platform.util.tools;

import org.springframework.core.env.ConfigurableEnvironment;

import com.witsight.platform.Constants;
import com.witsight.platform.util.lang.StringUtil;

/**   
 * 说明：环境属性取得
 * @Title: EnvironmentProperties.java 
 * @Package com.witsight.platform.util.tools 
 * @See: {@link EnvironmentProperties}<br/>
 * Copyright: Copyright (c) 2017<br/>
 * Company:sany huax witsight team by product
 * @author: penght  
 * @date: 2017年10月11日 下午5:06:05 
 * @version: V1.0
 *
 */
public class EnvironmentProperties {
	/**
	 * 
	 * 说明：取得环境属性对象
	 * @Title: getConfigurableEnvironment
	 * @See: {@link #getConfigurableEnvironment()}
	 * @author penght
	 * @return ConfigurableEnvironment
	 * @date: 2016年9月20日 下午2:05:28
	 */
	public static ConfigurableEnvironment getConfigurableEnvironment() {
		return SpringUtil.getBeanByType(ConfigurableEnvironment.class);
	}
	/**
	 * 
	 * 说明：根据key查找string类型的值
	 * @Title: getProperty
	 * @See: {@link #getProperty(String)}
	 * @author penght
	 * @param key key
	 * @return String
	 * @date: 2016年9月20日 下午2:07:46
	 */
	public static String getProperty(String key){
		ConfigurableEnvironment environment = getConfigurableEnvironment();
		if (environment == null) {
			return "";
		}
		String value = environment.getProperty(key);
		return value;
	}
	/**
	 * 
	 * 说明：根据key查找string数组类型的值
	 * @Title: getPropertys
	 * @See: {@link #getPropertys(String)}
	 * @author penght
	 * @param key key
	 * @return String[] 
	 * @date: 2017年2月21日 下午2:55:47
	 */
	public static String[] getPropertys(String key){
		ConfigurableEnvironment environment = getConfigurableEnvironment();
		if (environment == null) {
			return new String[]{};
		}
		String value = environment.getProperty(key);
		return StringUtil.commaDelimitedListToStringArray(StringUtil.trimAllWhitespace(value));
	}
	/**
	 * 
	 * 说明：是否是开发环境？
	 * @Title: isDevProfile
	 * @See: {@link #isDevProfile()}
	 * @author penght
	 * @return true：是开发环境 false：不是开发环境
	 * @date: 2017年3月6日 上午11:13:15
	 */
	public static boolean isDevProfile() {
		String profile = getProperty("spring.profiles.active");
		if(StringUtil.isEmpty(profile)) {
			ConfigurableEnvironment environment = getConfigurableEnvironment();
			String[] strs = environment.getActiveProfiles();
			profile = strs.length>0 ? strs[0] : null;
		}
		// 判断是否是开发环境?
		if (StringUtil.equalsIgnoreCase(Constants.PROFILE_DEV, profile)) {
			return true;
		}
		return false;
	}
}
